Digital content, including, for example, audio and/or video streams, may be transmitted for reception, use, and enjoyment by a receiving user. For example, television shows, movies, songs, or other recordings may be transmitted across a computer network, or broadcast over the air, or transmitted by way of cable and/or satellite systems. In so doing, the digital content may be encoded, compressed, and/or modified, in order, for example, to conserve bandwidths in the various transmission schemes, and/or to speed the transmission of the audio and/or video streams.
After being encoded and transmitted, the digital content may be received by a user and decoded for use and enjoyment thereof, as just referenced. For example, a decoder may be associated with a television or associated set-top box of some sort, so that the encoded, compressed audio-video streams may be decoded and passed to the television (or other display or output device) for presentation to the user.
Such data streams often include discrete sequences of data, the location of which within the data stream may be useful to know during decoding or other processing of the data stream. For example, a discrete sequence of data may include some or all of the data for a particular video frame, audio frame, or image. It may be useful to designate such sequences with easily-recognizable data, such as a start code, which indicates the beginning of (and other information regarding) the sequence of data. Thus, insertion of a start code into such a data stream at the beginning of a sequence of data may facilitate decoding, synchronizing, or other processing of the sequence and/or the data stream as a whole.
Additionally, it is often desirable for a user to be able to navigate to different locations of the digital content. For example, a video viewer may wish to jump ahead to a future portion of a program, or jump backwards to an earlier portion, or to navigate more-or-less continuously through the program in either direction.
Conventional techniques exist that allow limited ability in this regard. For example, an audio/video bitstream may include information (such as a size of a current, previous, or following data sequence(s)) that allows the user to move consecutively from one start code to the next, until a desired data sequence is found. In other examples, the digital content may be indexed so that users can navigate some pre-designated amount (e.g., may jump ahead by fifteen minutes, or by one-fourth of a total program, or to the next program segment) to arrive at an associated start code for subsequent decoding to begin.
However, such techniques may not be workable or sufficient in certain circumstances. For example, it may be difficult to navigate certain types of audio-visual content in a desired manner, e.g., when the content does not have an index table available for performing navigation (or when such an index table would be difficult to construct in a timely or useful fashion). Even if an index table is available, the index table may not provide a desired level of flexibility in navigating (depending, e.g., on an available number of index pointers within the index table). Consequently, users may be limited in their navigation of audio-visual digital content.